package com.zh.media.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zh.media.domain.dto.*;
import com.zh.web.domain.media.vo.ArticleVo;
import com.zh.web.domain.media.entity.Article;
import com.zh.web.base.PageApiResult;

import javax.servlet.http.HttpServletRequest;
import java.time.LocalDateTime;
import java.util.List;

public interface ArticleService extends IService<Article> {
    /**
     * 添加文章
     *
     * @param addArticleDto 文章实体
     * @return 成功消息
     */
    String addArticle(AddArticleDto addArticleDto);

    /**
     * 更新文章
     *
     * @param updateArticleDto 更新文章实体
     * @return 成功消息
     */
    String updateArticle(UpdateArticleDto updateArticleDto);

    /**
     * 删除文章
     */
    String deleteArticle(Long id);

    /**
     * 审核文章
     */
    String statusArticle(AuditArticleDto auditArticleDto);

    /**
     * 分页查询文章
     */
    PageApiResult<ArticleVo> pageArticle(PageArticleDto pageArticleDto);

    /**
     * 批量保存文章数据
     *
     * @param list 文章数据
     */
    String saveList(List<Article> list);

    /**
     * 文章点赞操作
     * @param updateWorkInfoDto
     * @return
     */
    String praiseArticle(UpdateWorkInfoDto updateWorkInfoDto);

    /**
     * 文章收藏操作
     * @param updateWorkInfoDto
     * @return
     */
    String collectArticle(UpdateWorkInfoDto updateWorkInfoDto);
    Integer updateView(UpdateWorkInfoDto updateWorkInfoDto);
    Integer updateShare(UpdateWorkInfoDto updateWorkInfoDto);
    ArticleVo getDetail(Long id, HttpServletRequest request);

    Integer getArticlePraise(Long id);

    List<ArticleVo> listArticleVoByIds(List<Long> ids);

    List<ArticleVo> listArticleAfterTime(LocalDateTime time);
}
